package com.ddpt.platform.common.util;

import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Date;

/**
 * @ClassName: FileUtil
 * @Descpriction: 文件工具类
 * @author: zhangchao
 * @date: 2020/7/13 22:19
 * @version: 1.0
 */
@Slf4j
public class FileUtil {
    public static String getTempPath() {
        String subPath = DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN) + File.separator;
        String tempPath = System.getProperty("java.io.tmpdir") + subPath;
        File file = new File(tempPath);
        if (!file.exists()) {
            file.mkdirs();
        }
        return tempPath;
    }

    /**
     * 将JSON数据格式化并保存到文件中
     *
     * @param data     需要输出的json字符串数据
     * @param filePath 输出的文件地址
     * @return
     */
    public static File createJsonFile(String data, String filePath) {

        // 生成json格式文件
        Writer write = null;
        try {
            // 保证创建一个新文件
            File file = new File(filePath);
            if (!file.getParentFile().exists()) {
                // 如果父目录不存在，创建父目录
                file.getParentFile().mkdirs();
            }
            if (file.exists()) {
                // 如果已存在,删除旧文件
                file.delete();
            }
            file.createNewFile();
            // 将格式化后的字符串写入文件
            write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
            write.write(data);
            write.flush();
            return file;
        } catch (Exception e) {
            log.error("生成JSON文件失败,异常：{}", e);
        } finally {
            try {
                if (write != null)
                    write.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}
